#define _CRT_SECURE_NO_WARNINGS
//#include<iostream>
//#include<algorithm>
//#include<unordered_map>
//using namespace std;
//const int N = 1e3 + 10;
//int a[N], b[N],d[N*4],w[N],st[N];
//unordered_map<int, int> mp;
//int n,m,pos;
//int main()
//{
//	cin >> n >> m;
//	for (int i = 1; i <= m; i++)
//	{
//		int x, y; cin >> x >> y;
//		a[i] = x, b[i] = y; 
//		d[++pos] = x, d[++pos] = x + 1;
//		d[++pos] = y, d[++pos] = y + 1;
//	}
//	sort(d + 1, d + 1 + pos);
//	int cnt = 0;
//	for (int i = 1; i <= pos; i++)
//	{
//		int x = d[i];
//		if (mp.count(x)) continue;
//		cnt++;
//		mp[x] = cnt;
//	}
//	int ret = 0;
//	for (int i = 1; i <= m; i++)
//	{
//		int x = mp[a[i]], y = mp[b[i]];
//		for (int j = x; j <= y; j++)
//		{
//			w[j] = i;
//		}
//	}
//	for (int i = 1; i <= cnt; i++)
//	{
//		int x = w[i];
//		if (!x || st[x]) continue;
//		ret++;
//		st[x] = true;
//	}
//	cout << ret << endl;
//	return 0;
//}
//#include<iostream>
//using namespace std;
//void dfs(int n, char a, char b, char c)
//{
//	if (n == 0) return;
//	dfs(n - 1, a, c, b);
//	printf("%c->%d->%c\n", a,n,b);
//	dfs(n - 1, c, b, a);
//}
//int main()
//{
//	int n;
//	char a, b, c;
//	cin >> n >> a >> b >> c;
//	dfs(n, a, b, c);
//	return 0;
//}
//#include<iostream>
//using namespace std;
//const int N = 15;
//int a[N][N];
//int cnt[N];
//int n = 13, m = 4;
//void dfs(int x)
//{
//	if (x == 13) return;
//	int t = a[x][cnt[x]];
//	cnt[x]--;
//	dfs(t);
//}
//int main()
//{
//	for (int i = 1; i <= n; i++)
//	{
//		cnt[i] = m;
//		for (int j = 1; j <= m; j++)
//		{
//			char x; cin >> x;
//			int ret = 0;
//			if (x >= '2' && x <= '9') ret = x - '0';
//			else if (x == 'A') ret = 1;
//			else if (x == 'J') ret = 11;
//			else if (x == 'Q') ret = 12;
//			else if (x == 'K') ret = 13;
//			else ret = 10;
//			a[i][j] = ret;
//		}
//	}
//	for(int i=1;i<=m;i++) dfs(a[13][i]);
//	int ret = 0;
//	for (int i = 1; i <= n; i++)
//	{
//		if (cnt[i]==0) ret++;
//	}
//	cout << ret << endl;
//	return 0;
//}
//#include<iostream>
//using namespace std;
//string s;
//int n;
//int sum[1 << 11];
//void dfs(int l, int r)
//{
//	if (l > r) return;
//	int m = (l + r) / 2;
//	int ret = 0;
//	char ch;
//	ret = sum[r] - sum[l - 1];
//	//for (int i = l; i <= r; i++) ret += s[i] - '0';
//	if (ret == r - l + 1) ch = 'I';
//	else if (ret == 0) ch = 'B';
//	else ch = 'F';
//	if (l == r)
//	{
//		cout << ch;
//		return;
//	}
//	dfs(l, m);
//	dfs(m + 1, r);
//	cout << ch;
//}
//int main()
//{
//	cin >> n;
//	n = (1 << n);
//	cin >> s;
//	s = "0" + s;
//	for (int i = 1; i <= n; i++) sum[i] += sum[i - 1] + s[i] - '0';
//	dfs(1, s.size()-1);
//	return 0;
//}